1. Field of the Invention
This invention relates to an apparatus for controlling a file server having a plurality of disk storage units, and particularly to an apparatus for writing a file in a distributed manner into a plurality of file servers and reading out a file written in a distributed manner in a plurality of file servers.
2. Description of the Related Art
A file server is a device for writing a file received from a client connected to a telecommunication circuit into a disk storage unit and reading out a file written in a disk storage unit in accordance with a request from a client.
FIG. 16 is a view showing a structure of a conventional file server. A file server 3 stores a file received from a client 1 (communication counterpart), which is an information processing device (terminal device) such as a personal computer, via a telecommunication circuit 2. The file server 3 also reads out and sends a file to the client 1 when a read-out request is received from the client 1 as the communication counterpart.
Generally, a file is transmitted and received by packet via the telecommunication circuit 2. The file server 3 has a communication control unit 11 for discriminating and storing received packets or sending a stored file as packets. The file server 3 also has a file management unit 12 for managing a file to be stored and a disk storage unit 13 for storing a file.
By communicating with the file server 3 of FIG. 16 via the telecommunication circuit 2, the user of the client 1 can write or read out a file to or from the file server 3.
Generally, inside a CPU or the like and in a control system of a file server using a disk device, processing is carried out at a much higher speed than the speed of writing or reading out file data to or from a disk drive. Moreover, the control device bears only a light load due to a file system and communication protocols. The control device also bears only a light load for controlling individual disk drives. In short, the bottleneck of the data reading/writing speed in a file system is the reading/writing speed of the head of the disk drive.
Although the file server is very convenient to the client as described above, increasing the number of clients connected to the file server also increases the number of files to be handled and hence the storage capacity of the built-in disk storage unit 13 may become insufficient. A typical method for increasing the storage capacity is to add an external additional disk storage device or to replace the built-in disk drive with a disk drive with a large storage capacity.
However, since the storage capacity per disk drive is limited and the number of disk drives that can be managed in an ordinary operating system of a file server is also limited, the possibility of increasing capacity in a general-purpose file server is limited. Therefore, when a file server with a very large capacity is necessary, expensive disk drives having particularly large capacities must be used as individual disk drives, or an expensive and special operating system capable of managing many disk drives must be used as the operating system of the file server.
FIG. 17 is a view showing a structure of a conventional file server having a RAID (Redundant Array of Inexpensive Disks) device. The RAID device is a storage device formed by combining a plurality of relatively inexpensive disk drives (disk storage units) in an array as one virtual logical disk drive. The RAID device is adapted for redundantly writing data of a file or the like. The RAID device is a highly reliable and highly capable disk storage device that can improve the reading/writing speed of the head of the disk drive, which is the bottleneck of the above-described general-purpose file device, by redundantly writing data to the plurality of disk drives, and can also recover data in a defective disk drive, if any, by using the other disk drives.
To redundantly write data may be, for example, to add meaningless excess data to fill a predetermined number of bits, or to write data at different locations instead of completely overwriting the previous data in the disk drives. To redundantly write data in the RAID device is generally to write the same data in at least two different disk drives or to add the difference between basic data and data of this time as parity data. Thus, the RAID device enables recovery of data in a defective disk drive, if any, by using the other disk drives.
The difference between FIG. 16 and FIG. 17 is the employment of a RAID 4 device to be managed by the file management unit 12. A RAID device 4 has disk storage units 22 and 23 for storing files therein, and has a disk management unit 21 for managing the plurality of disk storage units 22 and 23. The file management unit 12 and the RAID device 4 are connected with each other by an optical fiber circuit or the like capable of communicating a large volume of data at a high speed. The disk management unit 21 has a dedicated program. Although two disk storage units are shown in FIG. 17 for simplifying the explanation, many of the actual RAID devices have three or more disk storage units. Likewise, the RAID device 4 may employ multiple disk management units 21.
The disk management unit 21 can manage the disk storage units 22 and 23 as one disk storage unit. Therefore, since the disk storage unit 13 of the file server 3 need not have a large capacity and the file server 3 may be a general-purpose file server, a high-speed large-capacity file system can be constructed relatively inexpensively by connecting a RAID device 4 to the file server 3.
Since the RAID device 4 has a large storage capacity, loss of stored data in case of some trouble in one disk drive is overcome by redundantly (doubly) storing data in the plurality of disk drives 22 and 23 like a mirror ring, and the processing in the file server can be continued.
However, in the case where the RAID device 4 is connected to the general-purpose file server 3, though processing of a large volume of data at a high speed is made possible by using the plurality of disk drives 22 and 23 as described above, the flow of data concentrates, for example, between the file management unit 12 and the RAID device 4, and therefore a special circuit is necessary. Moreover, in order to connect to many general-purpose disk drives, a special circuit board having a dedicated program and special hardware such as a high-speed processor, a large-capacity memory device, and fiber channels for communications between the disk drives is necessary as the disk management unit 21. Therefore, there is a problem that the RAID device 4 is generally expensive even though relatively inexpensive disk drives can be used as the individual disk drives 22 and 23 in the RAID device 4.
Also in the case where the file server 3 and the RAID device 4 are assumed to constitute a file system, since the RAID device 4 is expensive even though a relative inexpensive file server can be used as the file server 3, there is a problem that the file system is expensive as a whole.
Since special hardware is used for the RAID device as described above, there is also a problem that extension of its functions is difficult.
To deal with the above-described problems, a technique of constituting a high-speed large-capacity file system by sharing disk drives between file servers, and a technique of connecting many disk drives to a file server without using a RAID device have been considered. In these cases, however, processing of software is complicated and the capability of the CPU becomes less sufficient. Moreover, program development is very time-consuming and expensive and sufficient versatility and extensibility cannot be realized.
In order to solve the conventional problems as described above, what is needed is an inexpensive, high-speed and large-capacity file system having extensible functions and enabling redundant writing of data.